package modelo.armas;

import modelo.moviles.exceptions.ArmaSinBalas;
import modelo.moviles.balas.Bala;
import modelo.*;


public abstract class Arma {

	protected int cargador;
	protected Nivel nivel;

	public Arma(Nivel nivelNuevo){
	 	setNivel(nivelNuevo);
	}
	
	
	/* "al disparar suelta una nueva en el nivel correspondiente" */
	public abstract Bala disparar() throws ArmaSinBalas;

	public void setCargador(int cargador) {
		this.cargador = cargador;
	}

	public void setNivel(Nivel nivel) {
		this.nivel = nivel;
	}
	
	public Nivel getNivel() {
		return this.nivel ;
	}

	/* "Devuelve si el arma tiene balas" */
	public boolean puedeDisparar(){
		return (cargador > 0);
	}
	
}
